Developing a software product can be a long, labor-intensive process, typically involving contributions from multiple developers. A developer tasked with building a native web service type application, such as a relational database backed web service, for example, or else a portion of an existing application, often has to build the application/portion from scratch. In many cases, the developer manually writes complicated logic intended to handle anticipated requests that are to come from the user interface (UI) side of the application. As part of the development process, the developer often attempts to manually retain the logic flow of the various portions of the code, as well as manually validate the potential inputs.
Without a unified message handling mechanism, the developer may be left to manually set the response body as well as determine the content-types of the responses (and HTTP response code as well) to UI-based inputs. However, the user interface side of the application may encounter issues handling responses if the response body varies (including between different developers' work). Further, developer efficiency and productivity may not be optimal and the finished product may not be optimal either if each developer is left to individual preferences.